8
8
import pytest
9
9
10
10
from taskgraph .transforms .run import make_task_description
11
- from taskgraph .transforms .task import payload_builders
11
+ from taskgraph .transforms .task import payload_builders , set_defaults
12
12
from taskgraph .util .caches import CACHES
13
13
from taskgraph .util .schema import Schema , validate_schema
14
14
from taskgraph .util .templates import merge
23
23
"implementation" : "docker-worker" ,
24
24
"os" : "linux" ,
25
25
"env" : {},
26
+ "max-run-time" : 0 ,
26
27
},
27
28
"run" : {"using" : "run-task" , "command" : "echo hello world" },
28
29
}
@@ -70,6 +71,7 @@ def assert_docker_worker(task):
70
71
"-cx" ,
71
72
"echo hello world" ,
72
73
],
74
+ "docker-image" : {"in-tree" : "image" },
73
75
"env" : {
74
76
"CI_BASE_REPOSITORY" : "http://hg.example.com" ,
75
77
"CI_HEAD_REF" : "default" ,
@@ -82,6 +84,7 @@ def assert_docker_worker(task):
82
84
"VCS_PATH" : "/builds/worker/checkouts/vcs" ,
83
85
},
84
86
"implementation" : "docker-worker" ,
87
+ "max-run-time" : 0 ,
85
88
"os" : "linux" ,
86
89
"taskcluster-proxy" : True ,
87
90
},
@@ -117,6 +120,7 @@ def assert_generic_worker(task):
117
120
"VCS_PATH" : "build/src" ,
118
121
},
119
122
"implementation" : "generic-worker" ,
123
+ "max-run-time" : 0 ,
120
124
"mounts" : [
121
125
{"cache-name" : "checkouts" , "directory" : "build" },
122
126
{
@@ -175,7 +179,7 @@ def assert_run_task_command_generic_worker(task):
175
179
"task" ,
176
180
(
177
181
pytest .param (
178
- {"worker" : {"os" : "linux" }},
182
+ {"worker" : {"os" : "linux" , "docker-image" : { "in-tree" : "image" } }},
179
183
id = "docker_worker" ,
180
184
),
181
185
pytest .param (
@@ -193,12 +197,14 @@ def assert_run_task_command_generic_worker(task):
193
197
"run" : {
194
198
"exec-with" : "powershell" ,
195
199
},
200
+ "worker" : {"docker-image" : "powershell" },
196
201
},
197
202
id = "exec_with" ,
198
203
),
199
204
pytest .param (
200
205
{
201
206
"run" : {"run-task-command" : ["/foo/bar/python3" , "run-task" ]},
207
+ "worker" : {"docker-image" : "python" },
202
208
},
203
209
id = "run_task_command_docker_worker" ,
204
210
),
@@ -221,6 +227,12 @@ def test_run_task(monkeypatch, request, run_task_using, task):
221
227
param_id = request .node .callspec .id
222
228
assert_func = globals ()[f"assert_{ param_id } " ]
223
229
assert_func (taskdesc )
230
+ taskdesc = next (set_defaults ({}, [taskdesc ]))
231
+ validate_schema (
232
+ payload_builders [taskdesc ["worker" ]["implementation" ]].schema ,
233
+ taskdesc ["worker" ],
234
+ "validation error" ,
235
+ )
224
236
225
237
226
238
@pytest .fixture
0 commit comments